!pip install plotly
Collecting plotly Downloading plotly-5.5.0-py2.py3-none-any.whl (26.5 MB) Requirement already satisfied: six in c:\users\dell\anaconda3 2021\lib\site-packages (from plotly) (1.16.0) Collecting tenacity>=6.2.0 Downloading tenacity-8.0.1-py3-none-any.whl (24 kB) Installing collected packages: tenacity, plotly Successfully installed plotly-5.5.0 tenacity-8.0.1
import numpy as np
import pandas as pd
import plotly.express as px
px
<module 'plotly.express' from 'C:\\Users\\DELL\\anaconda3 2021\\lib\\site-packages\\plotly\\express\\__init__.py'>
confirmed_df = pd.read_csv("time_series_covid19_confirmed_global.csv")
confirmed_df
| Province/State | Country/Region | Lat | Long | 1/22/20 | 1/23/20 | 1/24/20 | 1/25/20 | 1/26/20 | 1/27/20 | ... | 1/5/22 | 1/6/22 | 1/7/22 | 1/8/22 | 1/9/22 | 1/10/22 | 1/11/22 | 1/12/22 | 1/13/22 | 1/14/22 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | NaN | Afghanistan | 33.939110 | 67.709953 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 158245 | 158275 | 158300 | 158309 | 158381 | 158394 | 158471 | 158511 | 158602 | 158639 |
| 1 | NaN | Albania | 41.153300 | 20.168300 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 212021 | 213257 | 214905 | 214905 | 219694 | 220487 | 222664 | 224569 | 226598 | 228777 |
| 2 | NaN | Algeria | 28.033900 | 1.659600 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 220415 | 220825 | 221316 | 221742 | 222157 | 222639 | 223196 | 223806 | 224383 | 224979 |
| 3 | NaN | Andorra | 42.506300 | 1.521800 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 25289 | 25289 | 26408 | 26408 | 26408 | 27983 | 28542 | 28899 | 28899 | 29888 |
| 4 | NaN | Angola | -11.202700 | 17.873900 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 86636 | 87625 | 88775 | 89251 | 89718 | 90316 | 91148 | 91907 | 92581 | 93302 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 275 | NaN | Vietnam | 14.058324 | 108.277199 | 0 | 2 | 2 | 2 | 2 | 2 | ... | 1817721 | 1843563 | 1859841 | 1876394 | 1899575 | 1914393 | 1930428 | 1958719 | 1975444 | 1991484 |
| 276 | NaN | West Bank and Gaza | 31.952200 | 35.233200 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 471414 | 471414 | 471414 | 471414 | 471414 | 472910 | 473302 | 473302 | 474234 | 474234 |
| 277 | NaN | Yemen | 15.552727 | 48.516388 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 10146 | 10152 | 10159 | 10178 | 10197 | 10197 | 10208 | 10220 | 10233 | 10233 |
| 278 | NaN | Zambia | -13.133897 | 27.849332 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 269991 | 274087 | 278276 | 281576 | 282904 | 284389 | 287110 | 289415 | 291582 | 293695 |
| 279 | NaN | Zimbabwe | -19.015438 | 29.154857 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 219057 | 220178 | 221282 | 221918 | 221918 | 223000 | 223000 | 224433 | 225084 | 225637 |
280 rows × 728 columns
confirmed_df = confirmed_df.drop(columns=['Lat', 'Long', 'Province/State'])
confirmed_df
| Country/Region | 1/22/20 | 1/23/20 | 1/24/20 | 1/25/20 | 1/26/20 | 1/27/20 | 1/28/20 | 1/29/20 | 1/30/20 | ... | 1/5/22 | 1/6/22 | 1/7/22 | 1/8/22 | 1/9/22 | 1/10/22 | 1/11/22 | 1/12/22 | 1/13/22 | 1/14/22 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | Afghanistan | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 158245 | 158275 | 158300 | 158309 | 158381 | 158394 | 158471 | 158511 | 158602 | 158639 |
| 1 | Albania | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 212021 | 213257 | 214905 | 214905 | 219694 | 220487 | 222664 | 224569 | 226598 | 228777 |
| 2 | Algeria | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 220415 | 220825 | 221316 | 221742 | 222157 | 222639 | 223196 | 223806 | 224383 | 224979 |
| 3 | Andorra | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 25289 | 25289 | 26408 | 26408 | 26408 | 27983 | 28542 | 28899 | 28899 | 29888 |
| 4 | Angola | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 86636 | 87625 | 88775 | 89251 | 89718 | 90316 | 91148 | 91907 | 92581 | 93302 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 275 | Vietnam | 0 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | ... | 1817721 | 1843563 | 1859841 | 1876394 | 1899575 | 1914393 | 1930428 | 1958719 | 1975444 | 1991484 |
| 276 | West Bank and Gaza | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 471414 | 471414 | 471414 | 471414 | 471414 | 472910 | 473302 | 473302 | 474234 | 474234 |
| 277 | Yemen | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 10146 | 10152 | 10159 | 10178 | 10197 | 10197 | 10208 | 10220 | 10233 | 10233 |
| 278 | Zambia | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 269991 | 274087 | 278276 | 281576 | 282904 | 284389 | 287110 | 289415 | 291582 | 293695 |
| 279 | Zimbabwe | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 219057 | 220178 | 221282 | 221918 | 221918 | 223000 | 223000 | 224433 | 225084 | 225637 |
280 rows × 725 columns
confirmed_df = confirmed_df.groupby(by='Country/Region').aggregate(np.sum).T
confirmed_df
| Country/Region | Afghanistan | Albania | Algeria | Andorra | Angola | Antigua and Barbuda | Argentina | Armenia | Australia | Austria | ... | United Kingdom | Uruguay | Uzbekistan | Vanuatu | Venezuela | Vietnam | West Bank and Gaza | Yemen | Zambia | Zimbabwe |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1/22/20 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
| 1/23/20 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0 |
| 1/24/20 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0 |
| 1/25/20 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0 |
| 1/26/20 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 4 | 0 | ... | 0 | 0 | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 0 |
| ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... | ... |
| 1/10/22 | 158394 | 220487 | 222639 | 27983 | 90316 | 5058 | 6399196 | 345981 | 1139097 | 1350225 | ... | 14708999 | 456179 | 200730 | 7 | 447288 | 1914393 | 472910 | 10197 | 284389 | 223000 |
| 1/11/22 | 158471 | 222664 | 223196 | 28542 | 91148 | 5058 | 6533635 | 346224 | 1223505 | 1361741 | ... | 14826336 | 463357 | 201155 | 7 | 447865 | 1930428 | 473302 | 10208 | 287110 | 223000 |
| 1/12/22 | 158511 | 224569 | 223806 | 28899 | 91907 | 5214 | 6664717 | 346811 | 1398776 | 1378747 | ... | 14958196 | 473180 | 202473 | 7 | 449730 | 1958719 | 473302 | 10220 | 289415 | 224433 |
| 1/13/22 | 158602 | 226598 | 224383 | 28899 | 92581 | 5214 | 6793119 | 346811 | 1526961 | 1394599 | ... | 15064685 | 483820 | 202473 | 7 | 449730 | 1975444 | 474234 | 10233 | 291582 | 225084 |
| 1/14/22 | 158639 | 228777 | 224979 | 29888 | 93302 | 5246 | 6932972 | 347084 | 1613249 | 1411421 | ... | 15165209 | 490626 | 203297 | 7 | 452430 | 1991484 | 474234 | 10233 | 293695 | 225637 |
724 rows × 196 columns
confirmed_df.index.name = 'Date'
confirmed_df = confirmed_df.reset_index()
confirmed_df.tail()
| Country/Region | Date | Afghanistan | Albania | Algeria | Andorra | Angola | Antigua and Barbuda | Argentina | Armenia | Australia | ... | United Kingdom | Uruguay | Uzbekistan | Vanuatu | Venezuela | Vietnam | West Bank and Gaza | Yemen | Zambia | Zimbabwe |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 719 | 1/10/22 | 158394 | 220487 | 222639 | 27983 | 90316 | 5058 | 6399196 | 345981 | 1139097 | ... | 14708999 | 456179 | 200730 | 7 | 447288 | 1914393 | 472910 | 10197 | 284389 | 223000 |
| 720 | 1/11/22 | 158471 | 222664 | 223196 | 28542 | 91148 | 5058 | 6533635 | 346224 | 1223505 | ... | 14826336 | 463357 | 201155 | 7 | 447865 | 1930428 | 473302 | 10208 | 287110 | 223000 |
| 721 | 1/12/22 | 158511 | 224569 | 223806 | 28899 | 91907 | 5214 | 6664717 | 346811 | 1398776 | ... | 14958196 | 473180 | 202473 | 7 | 449730 | 1958719 | 473302 | 10220 | 289415 | 224433 |
| 722 | 1/13/22 | 158602 | 226598 | 224383 | 28899 | 92581 | 5214 | 6793119 | 346811 | 1526961 | ... | 15064685 | 483820 | 202473 | 7 | 449730 | 1975444 | 474234 | 10233 | 291582 | 225084 |
| 723 | 1/14/22 | 158639 | 228777 | 224979 | 29888 | 93302 | 5246 | 6932972 | 347084 | 1613249 | ... | 15165209 | 490626 | 203297 | 7 | 452430 | 1991484 | 474234 | 10233 | 293695 | 225637 |
5 rows × 197 columns
confirmed_melt_df = confirmed_df.melt(id_vars='Date').copy()
confirmed_melt_df
| Date | Country/Region | value | |
|---|---|---|---|
| 0 | 1/22/20 | Afghanistan | 0 |
| 1 | 1/23/20 | Afghanistan | 0 |
| 2 | 1/24/20 | Afghanistan | 0 |
| 3 | 1/25/20 | Afghanistan | 0 |
| 4 | 1/26/20 | Afghanistan | 0 |
| ... | ... | ... | ... |
| 141899 | 1/10/22 | Zimbabwe | 223000 |
| 141900 | 1/11/22 | Zimbabwe | 223000 |
| 141901 | 1/12/22 | Zimbabwe | 224433 |
| 141902 | 1/13/22 | Zimbabwe | 225084 |
| 141903 | 1/14/22 | Zimbabwe | 225637 |
141904 rows × 3 columns
confirmed_melt_df.rename(columns={'value':'Confirmed'}, inplace=True)
confirmed_melt_df.head()
| Date | Country/Region | Confirmed | |
|---|---|---|---|
| 0 | 1/22/20 | Afghanistan | 0 |
| 1 | 1/23/20 | Afghanistan | 0 |
| 2 | 1/24/20 | Afghanistan | 0 |
| 3 | 1/25/20 | Afghanistan | 0 |
| 4 | 1/26/20 | Afghanistan | 0 |
max_date = confirmed_melt_df['Date'].max()
max_date
'9/9/21'
confirmed_melt_df['Date'] = pd.to_datetime(confirmed_melt_df['Date'])
confirmed_melt_df.head()
| Date | Country/Region | Confirmed | |
|---|---|---|---|
| 0 | 2020-01-22 | Afghanistan | 0 |
| 1 | 2020-01-23 | Afghanistan | 0 |
| 2 | 2020-01-24 | Afghanistan | 0 |
| 3 | 2020-01-25 | Afghanistan | 0 |
| 4 | 2020-01-26 | Afghanistan | 0 |
confirmed_melt_df['Date'] = confirmed_melt_df['Date'].dt.strftime('%m/%d/%Y')
max_date = confirmed_melt_df['Date'].max()
max_date
'12/31/2021'
total_confirmed_df = confirmed_melt_df[confirmed_melt_df['Date'] == max_date]
total_confirmed_df
| Date | Country/Region | Confirmed | |
|---|---|---|---|
| 709 | 12/31/2021 | Afghanistan | 158084 |
| 1433 | 12/31/2021 | Albania | 210224 |
| 2157 | 12/31/2021 | Algeria | 218432 |
| 2881 | 12/31/2021 | Andorra | 23740 |
| 3605 | 12/31/2021 | Angola | 81593 |
| ... | ... | ... | ... |
| 138993 | 12/31/2021 | Vietnam | 1731257 |
| 139717 | 12/31/2021 | West Bank and Gaza | 469748 |
| 140441 | 12/31/2021 | Yemen | 10126 |
| 141165 | 12/31/2021 | Zambia | 254274 |
| 141889 | 12/31/2021 | Zimbabwe | 213258 |
196 rows × 3 columns
total_confirmed = total_confirmed_df['Confirmed'].sum()
total_confirmed
288230968
fig = px.bar(total_confirmed_df, x='Country/Region', y='Confirmed')
fig.show()
fig = px.bar(total_confirmed_df.sort_values('Confirmed', ascending=False).head(30)
, x='Country/Region', y='Confirmed', text = 'Confirmed')
fig.show()
fig2 = px.scatter(confirmed_melt_df, x='Date', y='Confirmed', color='Country/Region')
fig2.show()
fig3 = px.line(confirmed_melt_df[confirmed_melt_df['Country/Region'] == 'Bangladesh'], x='Date', y='Confirmed')
fig3.show()